1. Field of the Invention
This invention relates to devices for caching objects transmitted using a computer network.
2. Related Art
In computer networks for transmitting information, information providers (sometimes called “servers”) are often called upon to transmit the same or similar information to multiple recipients (sometimes called “clients”) or to the same recipient multiple times. This can result in transmitting the same or similar information multiple times, which can tax the communication structure of the network and the resources of the server, and cause clients to suffer from relatively long response times. This problem is especially acute in several situations: (a) where a particular server is, or suddenly becomes, relatively popular; (b) where the information from a particular server is routinely distributed to a relatively large number of clients; (c) where the information from the particular server is relatively time-critical; and (d) where the communication path between the server and its clients, or between the clients and the network, is relatively slow.
One known method is to provide a device (such as a general purpose processor operating under software control) which acts as a proxy, receiving requests for information from one or more clients, obtaining that information from one or more servers, and transmitting that information to the clients in place of the servers. When the proxy has previously obtained the information from one or more servers, it can deliver that information to the client without having to repeat the request to the server. While this method achieves the goal of reducing traffic in the network and load on the server, it has the drawback that significant overhead is required by the local operating system and the local file system or file server of the proxy. This adds to the expense of operating the network and slows down the communication path between the server and the client.
There are several sources of delay, caused primarily by the proxy's surrendering control of its storage to its local operating system and local file system: (a) the proxy is unable to organize the information from the server in its mass storage for most rapid access; and (b) the proxy is unable to delete old network objects received from the servers and store new network objects received from the servers in a manner which optimizes access to mass storage. In addition to the added expense and delay, the proxy's surrendering control of its storage restricts functionality of the proxy's use of its storage: (a) it is difficult or impossible to add to or subtract from storage allocated to the proxy while the proxy is operating; and (b) the proxy and its local file system cannot recover from loss of any part of its storage without using an expensive redundant storage technique, such as a RAID storage system.
Accordingly, it would be desirable to provide a method and system for caching information transmitted using a computer network, which is not subject to additional delay or restricted functionality from having to use a local operating system and local file system or file server. This advantage is achieved in an embodiment of the invention in which a cache engine coupled to the network provides a cache of transmitted objects, which it stores in memory and mass storage by taking direct control of when and where to store those objects in mass storage. The cache engine may store those objects holographically so as to continue operation smoothly and recover gracefully from additions to, failures of, or removals from, its mass storage.